<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 7.0/HTML Export Filter">
<LINK REL="STYLESHEET" HREF="KDM_1.0_15_platformpkg.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE> 15	Platform Package</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<DIV>
<H6 CLASS="Heading">
<A NAME="pgfId-998826"></A><A NAME="58728"></A>Platform Package</H6>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1086553"></A>Overview</H3>
<P CLASS="Body">
<A NAME="pgfId-1100646"></A>Platform package defines a set of meta-model element whose purpose is to represent the runtime operating environments of existing software systems. Application code is not self-contained as it is determined not only by the selected programming languages, but also by the selected Runtime platform. Platform elements determine the execution context for the application. Platform package defines meta-model elements that represent common Runtime platform concerns:</P>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100648"></A>Runtime platform consists of many diverse elements (platform parts).</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100649"></A>Platform provides resources to deployment components.</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100650"></A>Platform provides services that are related to resources.</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100651"></A>Application code invokes services to manage the life-cycle of a resource.</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100652"></A>Control flow between application components is often determined by the platform.</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100653"></A>Platform provides error handling across application components.</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100654"></A>Platform provides integration of application components.</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId-1104366"></A>Examples of Platform Parts include UNIX OS File System, UNIX OS process management system, Windows 2000, OS/390, Java (J2SE), Perl language Runtime support, IBM CICS TS, IBM MQSeries, Jakarta Struts, BEA Tuxedo, CORBA, HTTP, TCP/IP, Eclipse, EJB, JMS, Database middleware, Servlets.</P>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1100659"></A><A NAME="_Toc119735969"></A><A NAME="_Toc119728915"></A><A NAME="_Toc131848475"></A>Organization of the Platform Package</H3>
<P CLASS="Body">
<A NAME="pgfId-1103264"></A>The Platform package consists of the following 10 class diagrams:</P>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103265"></A>PlatformModel</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103272"></A>PlatformInheritances</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103273"></A>PlatformResources</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103274"></A>PlatformRelations</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103275"></A>PlatformActions</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103276"></A>ProvisioningRelations</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103791"></A>Deployment</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103277"></A>RuntimeResources</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103278"></A>RuntimeActions</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103279"></A>ExtendedPlatformElements</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId-1100663"></A>The Platform package depends on the following packages:</P>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100665"></A>	Core</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100666"></A>	kdm</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100667"></A>	Code</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1103126"></A>	Action</LI>
</UL>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1100751"></A><A NAME="_Toc119735973"></A><A NAME="_Toc119728919"></A><A NAME="_Toc131848477"></A>PlatformModel Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1100753"></A>The PlatformModel class diagram The PlatformModel follows the uniform pattern for extending KDM Framework followed by each KDM model. The classes and associations of the PlatformModel diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#46831" CLASS="XRef">See - PlatformModel Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1100504"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-1.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption1">
<A NAME="pgfId-1100505"></A><A NAME="46831"></A>- PlatformModel Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100781"></A><A NAME="_Toc131848478"></A>PlatformModel Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1100782"></A>Platform model defines one of the architectural views in support of the principle of separation of concerns in KDM models. PlatformModel provides a container for platform elements.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100785"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1100786"></A>KDMModel</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100788"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1100798"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100791"></A>platformElement:PlatformElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100793"></A>owned platform elements</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100800"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100802"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104392"></A>PlatformModel is a logical container for platform elements. It is the implementer's responsibility to arrange platform elements into one or more platform models.</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100806"></A><A NAME="_Toc131848479"></A>AbstractPlatformElement Class (abstract)</H4>
<P CLASS="Body">
<A NAME="pgfId-1100807"></A>The AbstractPlatformElement is an abstract meta-model element which represents entities of the operating environments of software systems. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100809"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1100810"></A>KDMEntity</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100812"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103198"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103191"></A>platformRelation:PlatformRelation[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1103193"></A>platform relationship which originate from the platform element</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103195"></A>abstraction:ActionElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1103197"></A>owned &quot;abstraction&quot; actions</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104817"></A>implementation:AbstractCodeElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1104819"></A>grouped association to the AbstractCodeElement element that are represented by the current PlatformElement  from some CodeModel</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104607"></A>source:SourceRef[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1104609"></A>traceability links owned by the given platform element</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104826"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104827"></A>implementation AbstractCodeElement should be owned by some CodeModel</H6>
</DIV>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104878"></A>implementation AbstractCodeElement should be subclasses of ComputationalObject or ActionElement</H6>
</DIV>
<DIV>
<H6 CLASS="List1-">
<A NAME="pgfId-1104834"></A>abstraction ActionElement should be owned by the same PlatformModel</H6>
</DIV>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104828"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104829"></A>An instance of an AbstractPlatformElement represents either an instance of some runtime resource or some API call that manages some runtime resource. The implementation association links AbstractPlatformElement to the corresponding elements of some CodeModel. &quot;Abstraction&quot; action elements can be used to specify precise semantics of the PlatformElement.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1104405"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103234"></A>AbstractPlatformRelationship Class (abstract)</H4>
<P CLASS="Body">
<A NAME="pgfId-1103235"></A>The AbstractPlatformRelationship is an abstract meta-model element which represents associations between platform entities. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103236"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103237"></A>KDMRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103250"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103251"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104402"></A>An instance of an AbstractPlatformRelationship represents structural association between two runtime resources.</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1103134"></A><A NAME="_Toc119735982"></A><A NAME="_Toc119728928"></A><A NAME="_Toc131848476"></A>PlatformInheritances Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1103135"></A>The PlatformInheritances class diagram represents inheritances of the meta-modeling elements of the Platform package. The classes and associations of the PlatformInheritances diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#11052" CLASS="XRef">See - PlatformInheritances Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1103142"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-2.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1103144"></A><A NAME="11052"></A>- PlatformInheritances Class Diagram</H6>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1100863"></A><A NAME="_Toc119735976"></A><A NAME="_Toc119728922"></A><A NAME="_Toc131848482"></A>PlatformResources Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1100865"></A>The PlatformResources class diagram defines the meta-model elements to represent platform resources. The classes and associations of the PlatformResources diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#14055" CLASS="XRef">See - PlatformResources Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1099687"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-3.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1104600"></A><A NAME="14055"></A>- PlatformResources Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104602"></A><A NAME="_Toc131848486"></A>ResourceType Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1104603"></A>The ResourceType is a meta-model element that represents a platform resource. The purpose of a platform is to simplify application development by closing the gap between the application domain and the facilities that are available to application programmers. The latter are referred to as platform resources. Examples of resource types include UNIX File, UNIX IO Stream, UNIX socket, UNIX Process, UNIX thread, AWT widget, CICS File, CICS transaction, UNIX semaphore, UNIX shared memory segment, OS/390 VSAM file, JDBC connection, HTTP session, HTTP request, UNIX memory block, CICS commarea, COBOL file.</P>
<P CLASS="Body">
<A NAME="pgfId-1103339"></A>KDM introduces Platform Resource as an explicit abstraction in order to separate the explicit parts that are written by application programmers from parts that are provided by the platform. The underlying implementation details may be quite complex, for example, marshaled call includes client stubs, skeletons, platform-managers. The type of the Platform Resource denotes the semantics of the resource. </P>
<P CLASS="Body">
<A NAME="pgfId-1103345"></A>Platform resources can be further subdivided into smaller groups of services (resource types). Platform resources are usually grouped into platform stacks. Platform resource is an element of the overall platform used by a particular system. Complete Platform is the entire collection of platform resources used by the segments of the system. Platform resource may be associated with logical packages for a particular programming language.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103341"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101071"></A>AbstractPlatformElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101073"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1101087"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101076"></A>platformElement:AbstractPlatformElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1101078"></A>The set of platform elements which are owned by the given ResourceType.</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101088"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101090"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104525"></A>ResourceType may represent an individual runtime resource instance or a container for several such instances. </P>
<P CLASS="paragraph">
<A NAME="pgfId-1104526"></A>It is the implementer's responsibility to identify runtime resources used by the existing software system according to the semantics of the platform used by the existing system, resource configuration files and other appropriate sources of information.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1104523"></A>Specific subclasses of ResourceType define specific categories of resources available to implementers. Other types of resources can be represented by an generic instance of ResourceType meta-model element with a stereotype.</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101284"></A><A NAME="_Toc131848489"></A>NamingResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101285"></A>NamingResource represents platform resources that provide registration and lookup services (e.g., registry). In the meta-model NamingResource is a subclass of ResourceType.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101287"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101288"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101290"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101293"></A><A NAME="_Toc131848490"></A>MarshalledResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101294"></A>MarshalledResource represents platform resources that provide intercomponent communication via remote synchronous calls. For example, RPC, CORBA method call, Java remote method invocation. In the meta-model MarshalledResource is a subclass of ResourceType.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101297"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101298"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101300"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101303"></A><A NAME="_Toc131848491"></A>MessagingResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101304"></A>MessagingResource represents platform resources that provide intercomponent communication via asynchronous messages (e.g., IBM MQSeries messages). </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101308"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101309"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101311"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101314"></A><A NAME="_Toc131848492"></A>FileResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101315"></A>FileResource represents platform resources that provide any non-database related storage. In the meta-model the FileResource class is a subclass of ResourceType. It also implements the DataInterface so that this class can be the endpoint of Data relations. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101317"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101319"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101321"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101324"></A><A NAME="_Toc131848493"></A>ExecutionResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101325"></A>ExecutionResource represents dynamic Runtime elements (e.g., process or thread). </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101328"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101329"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101331"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103364"></A>LockResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103365"></A>LockResource represents a synchronization resource common to multithreaded runtime environments.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103366"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103367"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103368"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1103361"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101334"></A><A NAME="_Toc131848494"></A>StreamResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101335"></A>StreamResource represents a simple input/output resource, for example UNIX-like stream.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101338"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101340"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101342"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101355"></A><A NAME="_Toc131848496"></A>DataManager Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101356"></A>DataManager represents a database management system. DataManager is associated with particular data elements that represent the data description of the data managed by the data manager. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101358"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101360"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101362"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103308"></A>PlatformEvent class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1103309"></A>The PlatformEvent class is a meta-model element representing various events and callsbacks associated with runtime platforms. This class follows the KDM event pattern, common to Resource Layer packages.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103310"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1103311"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104855"></A>Attributes</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104861"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104858"></A>kind:String</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104860"></A>represents the nature of the action performed by this Event</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104797"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104737"></A>PlatformAction class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1104738"></A>PlatformAction class follow the pattern of a &quot;resource action&quot; class, specific to the Platform package. The nature of the action represented by a particular element is designated by its &quot;kind&quot; attribute. Descriptions of the common platform action kind are provided in Appendix 2. Resource Layer actions.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104739"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104740"></A>AbstractPlatformElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104741"></A>Attributes</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104749"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104746"></A>kind:String</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104748"></A>represents the nature of the action performed by this element</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104770"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1104776"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104773"></A>platformElement:PlatformEvent[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104775"></A>The set of platform events which are owned by the given PlatformAction.</P>
</TD>
</TR>
</TABLE>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104717"></A><A NAME="_Toc131848498"></A>ExternalActor Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1104718"></A>ExternalActor is a meta-model element that represents entities outside of the boundary of the software system being modeled. For example, external actor can be a user of the system. External actors interact with the software system.</P>
<P CLASS="Body">
<A NAME="pgfId-1104719"></A>In the meta-model ExternalActor is a PlatformElement. Semantics of ExternalActors is outside of the scope of KDM.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104720"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1104721"></A>PlatformAction</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104722"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104723"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104714"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1101847"></A><A NAME="_Toc119735979"></A><A NAME="_Toc119728925"></A><A NAME="_Toc131848506"></A>PlatformRelations Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1101849"></A>The PlatformRelations class diagram defines associations between ResourceTypes.</P>
<P CLASS="Body">
<A NAME="pgfId-1101776"></A>The classes and associations of the PlatformRelations diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#14172" CLASS="XRef">See - PlatformRelations Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1101777"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-4.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1101778"></A><A NAME="14172"></A>- PlatformRelations Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101946"></A><A NAME="_Toc131848507"></A>BindsTo Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101947"></A>BindsTo defines a semantic association between two ResourceTypes.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101952"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101953"></A>PlatformRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101955"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1101965"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101958"></A>from:ResourceType[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1101960"></A>The ResourceType which is the source of the relationship (the from-endpoint).</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101962"></A>to:ResourceType[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1101964"></A>The ResourceType which is the target of the relationship (the to-endpoint).</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101967"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1102970"></A>Semantics</H6>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1102976"></A><A NAME="_Toc131848508"></A><A NAME="_Toc119735983"></A><A NAME="_Toc119728929"></A><A NAME="_Toc131848510"></A>ProvisioningRelations Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1102003"></A>The ProvisioningRelations class diagram defines meta-model elements that represent the physical elements of the Runtime platform that provide certain services and manage resources.</P>
<P CLASS="Body">
<A NAME="pgfId-1101575"></A>The classes and associations of the ProvisioningRelations diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#12425" CLASS="XRef">See - ProvisioningRelations Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1101941"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-5.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1102096"></A><A NAME="12425"></A>- ProvisioningRelations Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1102143"></A><A NAME="_Toc131848512"></A><A NAME="_Toc131848513"></A>Requires Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1102144"></A>Requires defines semantic relationship between a DeployedComponent and a AbstractPlatformElement.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1102147"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1102148"></A>PlatformRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1102150"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1102160"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1102153"></A>from:DeployedComponent[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1102155"></A>The DeployedComponent which is the source of the relationship (the from-endpoint). </P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1102157"></A>to:AbstractPlatformElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1102159"></A>The AbstractPlatformElement which is the target of the relationship (the to-endpoint).</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1102162"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1102164"></A>Semantics</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1102217"></A>&nbsp;</H6>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1102220"></A><A NAME="_Toc131848517"></A>PlatformActions Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1102222"></A>The PlatformActions class diagram defines meta-model elements that represent specific actions which are the endpoints of certain Platform relationships. The elements of this diagram extend ActionElement from the KDM Action package.</P>
<P CLASS="Body">
<A NAME="pgfId-1104004"></A>The classes and associations of the PlatformActions diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#91438" CLASS="XRef">See - PlatformActions Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1104008"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-6.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1104010"></A><A NAME="91438"></A>- PlatformActions Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104014"></A>ManagesResource class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1104015"></A>ManagesResource class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to platform resources that are not related to the flow of data to and from the resource. ManagesResource relationship is similar to Addresses relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the PlatformAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104017"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104018"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104020"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104115"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104119"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104121"></A>&quot;abstracted&quot; action owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104123"></A>to:ResourceType[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104125"></A>the resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104023"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104024"></A>This relationship should not be used in Code models</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104025"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104026"></A>ReadsResource class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1104027"></A>ReadsResource class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to platform resources where there is a flow of data from the resource. ReadsResource relationship is similar to Reads relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the PlatformAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104029"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104030"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104032"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104150"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104154"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104156"></A>&quot;abstracted&quot; action owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104158"></A>to:ResourceType[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104160"></A>the resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104035"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104036"></A>This relationship should not be used in Code models</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104037"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104038"></A>WritesResource class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1104039"></A>WritesResource class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to platform resources where there is a flow of data to the resource. WritesResource relationship is similar to Writes relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the PlatformAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104041"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104042"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104043"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104168"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104172"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104174"></A>&quot;abstracted&quot; action owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104176"></A>to:ResourceType[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104178"></A>the resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104046"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104047"></A>This relationship should not be used in Code models</H6>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104258"></A>DefinedBy class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1104259"></A>DefinedBy is a meta-model element that represents association between a platform resource and the logical package that describes the interface to this resource. The CodeItem at the to-endpoint of this KDM relationship is usually an interface or a package.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104286"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104287"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104261"></A>Associations</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104303"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104307"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104309"></A>&quot;abstracted&quot; action owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1104311"></A>to:CodeItem[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1104313"></A>the CodeItem describing the resource</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104265"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104266"></A>This relationship can not be used in the Code Model</H6>
</DIV>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104268"></A>Semantics:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104269"></A>DefinedBy is an optional relationship. It is the implementer's responsibility to correctly associate the platform resource with the corresponding logical definition of this resource (usually a Signature, an Interface, or a Package). The logical description of the package usually refers to some external implementation, as platform resources are usually described by some third-party packages, provided as part of the runtime platform of the application. Individual API calls corresponding to the given resource, should have the CompliesTo relations to the individual API descriptions the definition represented by the CodeItem at the to-endpoint of the DefinedBy relationship.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1104048"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1103466"></A><A NAME="_Toc119736014"></A><A NAME="_Toc119728961"></A><A NAME="_Toc131848538"></A>Deployment Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1103467"></A>The Deployment class diagram defines meta-model elements that represent deployment elements and their relations. In particular, the elements of the Deployment diagram address physical structures and how logical components are mapped to these physical structures.</P>
<P CLASS="Body">
<A NAME="pgfId-1103471"></A>The classes and associations of the Deployment diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#59379" CLASS="XRef">See - Deployment Class Diagram.</A>. </P>
<P CLASS="Body">
<A NAME="pgfId-1103475"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-7.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1103477"></A><A NAME="59379"></A>- Deployment Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103479"></A><A NAME="_Toc131848539"></A>DeployedComponent Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103480"></A>The DeployedComponent represents a unit of deployment as defined by a particular platform. Major platform parts provide a packaging mechanism of deploying application functionality. Deployment component is a replaceable unit of an application. For example, DLL, shared library, COM, Eclipse plugin, Executable, Jar file, War file for Tomcat, SQL Stored procedure, CORBA module, EJB, JavaBean, Jakarta Struts Action, Jakarta Struts Form. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103482"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103483"></A>AbstractPlatformElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103484"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103498"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103487"></A>groupedCode:Module[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103489"></A>The code components which are deployed to the target DeployedComponent (KDM grouping association)</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103499"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103500"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103502"></A><A NAME="_Toc131848540"></A>DeployedSoftwareSystem Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103503"></A>The DeployedSoftwareSystem is a meta-model element that represents an instance of a software system at deployment or at the initialization time. DeployedSoftwareSystem is a physical instance of some logical SoftwareSystem. DeployedSoftwareSystem is associated with a set of DeployedComponents, which correspond to the set of logical components of the logical SoftwareSystem. The logical view of KDM model describes one or more SoftwareSystems. Each SoftwareSystem involves one or more Components. Some components can be involved in more than one SoftwareSystem (allowing description of the so-called Software Product Lines). Each Component involves one or more model Modules. Again, each Module can be involved in more than one Component. Component is a unit of deployment. Each logical component can be deployed multiple times, each time represented by a unique DeploymentComponent element. DeployedSoftwareSystem is a counterpart of the corresponding logical SoftwareSystem.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103504"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103505"></A>AbstractPlatformElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103506"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103516"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103513"></A>groupedComponent:DeployedComponent[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103515"></A>The set of physical DeployedComponents that make up the target system. The physical components correspond to the logical components of the system.</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103517"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103518"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103520"></A><A NAME="_Toc131848541"></A>Machine Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103521"></A>The Machine is a meta-model element that represents the hardware node which hosts deployed components. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103522"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103523"></A>AbstractPlatformElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103524"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103534"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103527"></A>deployedComponent:DeployedComponent[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1103529"></A>the set of DeployedComponent elements deployed to this node</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103531"></A>deployedResource:DeployedResource[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1103533"></A>the set of DeployedResource elements deployed to this node</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103535"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103536"></A>Semantics</H6>
<P CLASS="Body">
<A NAME="pgfId-1103537"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103539"></A><A NAME="_Toc131848542"></A>DeployedResource Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103540"></A>The DeployedResource is a meta-model element that represents a set of platform resource instances as they are deployed in a particular deployment configuration. DeployedResource is associated with a set of ResourceType elements. DeployedResource provides a unique physical context for a logical resource, as each logical resource can be associated with multiple DeployedResource.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103542"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103543"></A>AbstractPlatformElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103544"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103562"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103551"></A>platformElement:ResourceType[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103553"></A>The set of ResourceTypes which are deployed into the target DeployedResource. </P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103563"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103564"></A>Semantics</H6>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1103753"></A><A NAME="_Toc119736011"></A><A NAME="_Toc119728958"></A><A NAME="_Toc131848534"></A>RuntimeResources Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1103754"></A>The RuntimeResources class diagram defines meta-model elements that represent dynamic structures (instances of some logical entities and their relationships) that emerge at the so-called &quot;run time&quot; of the software system. For example, dynamic entities include processes and threads. Instances of processes and threads can be created dynamically and in many cases relations between the dynamically created instances of processes and threads are an essential part of the knowledge of existing systems. Another example of dynamic structures involves deployed components that are loaded dynamically. </P>
<P CLASS="Body">
<A NAME="pgfId-1103758"></A>The classes and associations of the RuntimeResources diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#32393" CLASS="XRef">See - RuntimeResources Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1103762"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-8.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1103764"></A><A NAME="32393"></A>- RuntimeResources Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103766"></A><A NAME="_Toc131848535"></A>RuntimeResource (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1103767"></A>The RuntimeResource is a generic meta-model element that represents an entity that has its own execution thread (for example, process or thread). RuntimeResource is subclassed by Process and Thread. In the meta-model RuntimeResource is used as the endpoint of certain relationships.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103768"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103769"></A>ResourceType</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103770"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103772"></A><A NAME="_Toc131848536"></A>Process Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103773"></A>The Process is a meta-model element that represents instances of processes.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103774"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103775"></A>RuntimeResource</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103776"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103777"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103779"></A><A NAME="_Toc131848537"></A>Thread Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103780"></A>The Thread is a meta-model element that represents instances of the so-called threads (light-weight processes). </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103781"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103782"></A>RuntimeResource</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103783"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103784"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1103748"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1103568"></A><A NAME="_Toc119736017"></A><A NAME="_Toc119728964"></A><A NAME="_Toc131848543"></A>RuntimeActions Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1103569"></A>The RuntimeActions class diagram defines meta-model elements that represent specific Runtime actions as the endpoints of certain Runtime relationships. The elements of this diagram extend ActionElement from the KDM Action package.</P>
<P CLASS="Body">
<A NAME="pgfId-1103573"></A>The classes and associations that make up the RuntimeActions diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#61642" CLASS="XRef">See - RuntimeActions Class Diagram.</A>. </P>
<P CLASS="Body">
<A NAME="pgfId-1103577"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-9.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1103579"></A><A NAME="61642"></A>- RuntimeActions Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103603"></A><A NAME="_Toc131848547"></A>Loads Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1103604"></A>The Loads class is a meta-model element that represents &quot;dynamic loading relationship&quot; between a LoadingService action endpoint and the DeployedComponent.</P>
<P CLASS="Body">
<A NAME="pgfId-1103605"></A>In the meta-model Loads is a subclass of a generic element RuntimeRelation.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103606"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103607"></A>AbstractPlatformRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103608"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103618"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103611"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103613"></A>&quot;abstracted&quot; action element owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103615"></A>to:DeploymentComponent[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103617"></A>The component which is being loaded.</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103619"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103620"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1103629"></A><A NAME="_Toc131848549"></A>Spawns Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1104245"></A>The Spawns class is a meta-model element that represents &quot;dynamic process creation&quot; or &quot;dynamic thread creation&quot; relationship between a SpawningService action endpoint and the RunnableInterface (Process or Thread). </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104246"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103632"></A>AbstractPlatformRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103633"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103643"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103636"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103638"></A>&quot;abstracted&quot; action element owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103640"></A>to:RuntimeResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103642"></A>The runtime resource element (Process or Thread) which is being spawned.</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103644"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103645"></A>Semantics</H6>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1103800"></A>ExtenededPlatformElements Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1104484"></A>The ExtendedPlatformElements class diagram defines two &quot;wildcard&quot; generic elements for the code model as determined by the KDM model pattern: a generic platform entity and a generic platform relationship.</P>
<P CLASS="Body">
<A NAME="pgfId-1103805"></A>The classes and associations of the ExtendedPlatformElements diagram are shown in <A HREF="KDM_1.0_15_platformpkg.htm#11576" CLASS="XRef">See - ExtendedPlatformElements Class Diagram.</A>. </P>
<P CLASS="Body">
<A NAME="pgfId-1103809"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_15_platformpkg-10.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1103811"></A><A NAME="11576"></A>- ExtendedPlatformElements Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104442"></A>PlatformElement Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1104443"></A>The PlatformElement class is a generic meta-model element that can be used to define new &quot;virtual&quot; meta-model elements through the KDM light-weight extension mechanism. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104444"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1104458"></A>AbstractPlatformElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1104473"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104474"></A>PlatformElement should have at least one stereotype</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104475"></A>Semantics</P>
<P CLASS="paragraph">
<A NAME="pgfId-1104468"></A>A platform entity with under specified semantics. It is a concrete class that can be used as the base element of a new &quot;virtual&quot; meta-model entity types of the platform model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1104461"></A>PlatformRelationship Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1104433"></A>The PlatformRelationship class is a generic meta-model element that can be used to define new &quot;virtual&quot; meta-model elements through the KDM light-weight extension mechanism.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103858"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1103859"></A>AbstractPlatformRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103860"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1103870"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103863"></A>from:AbstractPlatformElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103865"></A>The platform element endpoint</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1103867"></A>to:KDMEntity[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableText">
<A NAME="pgfId-1103869"></A>the target of the relationship</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1103871"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1104419"></A>PlatformRelationship should have at least one stereotype</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1104420"></A>Semantics</P>
<P CLASS="paragraph">
<A NAME="pgfId-1104421"></A>A platform relationship with under specified semantics. It is a concrete class that can be used as the base element of a new &quot;virtual&quot; meta-model relationship types of the platform model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.</P>
<P CLASS="Body">
<A NAME="pgfId-1104422"></A>&nbsp;</P>
<P CLASS="paragraph">
<A NAME="pgfId-1103413"></A>&nbsp;</P>
<P CLASS="Body">
<A NAME="pgfId-1098137"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
